The present invention relates to a computer system that supports a universal serial bus (USB) interface and method for controlling a USB corresponding I/O device.
Recently, a computer system that supports a universal serial bus (USB) interface has been developed. In particular, for a compact size computer system, such as a notebook type or a hand-held type personal computer, the USB supported system has merits due to increased flexibility because it becomes possible to couple various types of USB corresponding peripheral devices to the computer system without increasing the various types of connectors.
The USB is a serial interface standard for commonly processing data communications with USB corresponding devices, such as a USB floppy disk, a keyboard, a mouse, or a camera. The USB interface has been defined by the xe2x80x9cUSB specification, Ver. 1.0xe2x80x9d, issued on Jan. 15, 1996.
For coupling various types of peripheral or I/O devices to a computer system, it has conventionally been necessary for the computer system be installed with various types of connectors for the respective I/O devices. The USB can eliminate such complexity. By supporting the USB in the computer system, it becomes possible to integrate the various types of connectors into a single USB connector. Accordingly, the USB connector can increase the flexibility of using many types of I/O devices and can also reduce production cost of a computer system.
Unfortunately, however, for actually driving the USB corresponding devices, it is necessary for the computer system supported by the USB to additionally have installed a particular combined set of a special operating system (OS) and a dedicated driver for driving the USB corresponding peripheral or I/O devices (hereinafter referred to as USB devices). That is, even if the computer system supports a USB connector as hardware, it cannot actually drive the USB devices by only using a usual OS environment, such as a combination of DOS and UNIX, without also installing the particular set of the special OS and the dedicated driver.
Recently, to achieve a thinner body of a hand-held type computer system, it has meant supporting a USB connector in the computer body without installing a floppy disk drive (FDD) in the computer body. Instead of the installed FDD, a USB corresponding floppy disk drive (hereinafter referred to as a xe2x80x9cUSB FDDxe2x80x9d) is detachably coupled to the computer through a USB connector installed in the body.
However, as explained above, the computer system cannot actually drive the USB FDD by a conventional BIOS-ROM program without adding a special OS and a dedicated driver. That is, there is a problem in that the computer system having the USB connector must additionally have installed the combined set of the special OS and the dedicated driver for actual drive control of the USB FDD.
Further, there is another problem in increasing the peripheral devices coupled to the computer system. A conventional IBM PC/AT compatible type computer system has been restricted to an increase in the number of system interrupt requests (IRQs) to fifteen. Consequently, even if the USB is provided in the computer system, the flexibility of increasing the number of various peripheral devices for coupling to the USB connector is still restricted by the maximum number of IRQs.
There is still another problem in a working area in memory for executing a control program for the USB FDD. The control program for the USB FDD has conventionally been executed by using a lower access area of less than 1 mega (M) byte in a primary memory. The lower access area is also used as a user area for executing host programs, such as an OS and other application programs. To execute the control program for the USB FDD, a large portion of the lower access area becomes occupied. Consequently, the host programs cannot effectively use the lower access area.
Accordingly, an object of the present invention is to solve the aforementioned problems of a conventional computer system that supports a USB interface.
For achieving the above-noted objects and other objects, in accordance with the present invention, there is provided a computer system comprising:
a CPU supporting a plurality of operating modes including at least a real mode and a pseudo-real mode;
an interrupt control means for issuing an interrupt signal of highest priority instructing execution of an interrupt program in the pseudo-real mode;
a memory having an access area which becomes accessible when the interrupt signal of highest priority has been issued to the CPU;
an I/O controller for executing a communication process for driving an I/O device; and
the memory for storing the interrupt program executed by using the access area.
Also, in accordance with the present invention there is provided a computer system, comprising:
a CPU supporting a plurality of operating modes including at least a real mode and system management mode (SMM);
an interrupt control means for issuing a system management interrupt (SMI) signal of highest priority instructing execution of an interrupt program in the SMM;
a memory having a higher access area higher than 1 MB which becomes accessible when the SMI signal has been issued to the CPU;
an I/O host controller (I/O HC) for executing a command communication process for driving an I/O device; and
the memory for storing the interrupt program executed by the SMI signal generating process and the command communication process executed in the SMM.
Further in accordance with the present invention there is provided a computer system, comprising:
means for receiving a request for performing an I/O process from a host program;
means for generating a system management interrupt (SMI) signal after receiving the I/O process request;
means for executing the I/O process after generating the SMI signal; and
means for outputting an executing status of the I/O process to a CPU.
Additionally in accordance with the present invention there is provided a method for controlling a drive of an I/O device comprising the steps of:
reading out an I/O drive process routine based on a request from a host program;
confirming whether or not the read out I/O drive process routine uses the I/O device;
judging whether or not data communication to the I/O device is necessary after the confirming step;
issuing an interrupt signal of highest priority to a CPU when the data communication is judged necessary by the judging step;
executing the data communication after issuing the interrupt signal of highest priority;
examining whether or not the data communication has completed; and
generating a value for an output register when the examining step judges completion of the data communication.
Also in accordance with the present invention there is provided a method for controlling driving of an I/O device, comprising the steps of:
receiving a request for an I/O process from a host program;
generating a system management interrupt (SMI) after receiving the request;
executing the I/O process by a split process after generating the SMI; and
outputting a status of the I/O process to the host program after completion of the split process.